/* 
 * File:   aluno.h
 * Author: atila
 *
 * Created on 23 de Novembro de 2010, 20:00
 */

#ifndef ALUNO_H
#define	ALUNO_H

#ifdef	__cplusplus
extern "C" {
#endif

#include "../curso/curso.h"

    typedef struct Aluno {
        int matricula;
        char nome[255];
        int curso_id;
    } Aluno;

    typedef enum Buscar_por{
        matricula = 1, nome = 2
    } Buscar_por;

    int create_aluno(Aluno *aluno);
    int read_aluno(int matricula);
    int read_all_aluno();
    int update_aluno(Aluno *aluno);
    int delete_aluno(int matricula);

    int aluno_size();

    Aluno * find_aluno(char *input, Buscar_por buscar_por);
    /**
     * @deprecated use find_aluno(char *, Buscar_por)
     * @param nome
     * @return
     */
    Aluno * find_aluno_by_nome(char *nome);

    /**
     * Arquivos
     */
#define ALUNO_DB "src/aluno/aluno.bin"
#define ALUNO_TMP "src/aluno/aluno_tmp.bin"
#define ALUNO_SEQ "src/aluno/aluno_seq.bin"

    /**
     * diretivas de compilação
     */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../common/messages.h"
#include "../common/sequence.h"

#ifdef	__cplusplus
}
#endif

#endif	/* ALUNO_H */
